Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit 5eb02b2a256891c8f4f46a4acd639b0591847eac


Parents : bdc7fc8
Author : Ivan <ivan@quad4.io>
Signature : Signature validation error
Date : 2026-05-03T13:17:59-05:00

feat(audio): add native WAV attachment availability check and update audio source for recording

Changes
Diff

diff --git a/android/app/src/main/java/com/meshchatx/MainActivity.java b/android/app/src/main/java/com/meshchatx/MainActivity.java
index d8a49d05..bb1d6c62 100644
--- a/android/app/src/main/java/com/meshchatx/MainActivity.java
+++ b/android/app/src/main/java/com/meshchatx/MainActivity.java
@@ -1089,6 +1089,16 @@ public class MainActivity extends AppCompatActivity {
&& WavPcmAttachmentRecorder.canStart(activity);
}
+ /**
+ * Voice-note attachment capture (PCM WAV) only checks the attachment recorder,
+ * independent of telephone native audio, so the WebView can always prefer
+ * native 48 kHz mono PCM for LXST Opus encoding on the server.
+ */
+ @JavascriptInterface
+ public boolean isNativeWavAttachmentAvailable() {
+ return WavPcmAttachmentRecorder.canStart(activity);
+ }
+
@JavascriptInterface
public boolean isTelephoneNativeAudioAvailable() {
return TelephoneNativeAudioSession.canRun(activity);

diff --git a/android/app/src/main/java/com/meshchatx/WavPcmAttachmentRecorder.java b/android/app/src/main/java/com/meshchatx/WavPcmAttachmentRecorder.java
index f13e5ad1..f6b28b05 100644
--- a/android/app/src/main/java/com/meshchatx/WavPcmAttachmentRecorder.java
+++ b/android/app/src/main/java/com/meshchatx/WavPcmAttachmentRecorder.java
@@ -58,7 +58,7 @@ public final class WavPcmAttachmentRecorder {
}
try {
audioRecord = new AudioRecord(
- MediaRecorder.AudioSource.MIC,
+ MediaRecorder.AudioSource.VOICE_COMMUNICATION,
SAMPLE_RATE,
CHANNEL,
ENCODING,


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────